package com.sunedai.tiger.dao.system;

import com.sunedai.tiger.dao.system.entity.EmpUsr;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * 菜单dao层
 * @author zhaolipeng
 */
@Repository
public interface EmpUsrDao extends PagingAndSortingRepository<EmpUsr, Long> {

  /**
   * 保存或更新用户
   * @param empUsr -- 用户实体
   * @return 新的用户实体
   */
  @Override
  EmpUsr save(EmpUsr empUsr);

  /**
   * 通过用户登录名查找用户
   * @param loginName -- 登录名
   * @return 用户实体
   */
  EmpUsr findByLoginName(String loginName);

  /**
   * 查找所有用户
   * @param pageable -- 分页信息
   * @return 用户集合
   */
  @Override
  Page<EmpUsr> findAll(Pageable pageable);

  /**
   * 删除用户
   * @param empUsr -- 用户实体
   */
  @Override
  void delete(EmpUsr empUsr);

  /**
   * 统计用户总数
   * @return 用户总数
   */
  @Override
  long count();

  /**
   * 通过手机号查找用户
   * @param telNum -- 手机号
   * @return 用户实体
   */
  EmpUsr findByTelNum(String telNum);

  /**
   * 通过标识查找用户
   * @param id -- 用户标识
   * @return 用户实体
   */
  @Override
  Optional<EmpUsr> findById(Long id);
}
